Objective: 1) identify all closely genetic pairs < x core variants 2) filter pairs that have mortality metadata (survived <-> died or survived <-> survived or died <-> died) 3) Extract all mutations/genes corresponding for this different “mortality switches/non-switches” 4) Identify all the mutations specific to survived <-> died switches (<=> mut_survived<->died - mut_survived<->survived (- mut_died<->died ?)) 5) From all closely related paired isolates filter the one that have been already phenotyped 6) Calculate changes (delta) for each measured phenotype (all GC and PI parameters) 7) Investigate difference in delta of all parameter changes for survived <-> died VS survived <-> survived (VS died<->died -> Is there a systematic significant change between theses parameters (absolute delta)? -> Are these changes directionnal (eg decrease in growth rate or AUC_cell_death) 8) Accessory question are there phenotypic changes not associated with detected genotypic changes -> should we investigate structural variants (nanopore pacbio ?)

Set/check knitR option and working directory

knitr::opts_chunk$set(echo = TRUE)
knitr::opts_knit$set(root.dir = here::here())
msg <- stringr::str_c("My directory is ", here::here())
message(msg)
## My directory is /Users/giulieris/OneDrive - The University of Melbourne/R/VANANZ_phenotypes_github
library(tidyverse)
library(magrittr)
rm(list = ls())
source("Functions/all_functions.R")

Import snp distance matrix (from snp-dist core.aln (snippy))

snp.dist.mat <- read.csv("Data_analysis/Genetic_pairs_analysis/VANANZ_core.aln.dist.mat", sep = "\t")  %>%
  as.matrix(.)
str(snp.dist.mat)
##  chr [1:844, 1:845] "BPH2700" "BPH2701" "BPH2702" "BPH2703" "BPH2704" ...
##  - attr(*, "dimnames")=List of 2
##   ..$ : NULL
##   ..$ : chr [1:845] "snp.dists.0.6.3" "BPH2700" "BPH2701" "BPH2702" ...
# put 1st column as row name and remove 1st column
row.names(snp.dist.mat) <- snp.dist.mat[,1]
snp.dist.mat <- snp.dist.mat[,2:845]
str(snp.dist.mat)
##  chr [1:844, 1:844] "    0" "18224" " 9375" " 9267" "25534" "25539" "29327" ...
##  - attr(*, "dimnames")=List of 2
##   ..$ : chr [1:844] "BPH2700" "BPH2701" "BPH2702" "BPH2703" ...
##   ..$ : chr [1:844] "BPH2700" "BPH2701" "BPH2702" "BPH2703" ...

Turn distance matrix to long format

require(harrietr)
## Loading required package: harrietr
## Registered S3 method overwritten by 'treeio':
##   method     from
##   root.phylo ape
snp.dist.df <- harrietr::melt_dist(snp.dist.mat) %>%
  mutate(dist = as.integer(dist)) %>%
  filter(iso1 != "Reference") # remove reference
head(snp.dist.df)
##      iso1    iso2  dist
## 1 BPH2701 BPH2700 18224
## 2 BPH2702 BPH2700  9375
## 3 BPH2703 BPH2700  9267
## 4 BPH2704 BPH2700 25534
## 5 BPH2705 BPH2700 25539
## 6 BPH2706 BPH2700 29327
hist(snp.dist.df$dist, breaks = 1000)

hist(snp.dist.df$dist, breaks = 100000, xlim = c(0,100))

Add rows of symmetrical comparisons to close_strain.df to have all comparisons BPH1 <-> BPH2 and BPH2 <-> BPH1

close_strain_symetrical.df <- close_strain.df %>%
  mutate(isoA = iso1, isoB = iso2) %>%
  mutate(iso1 = isoB, iso2 = isoA) %>%
  select(iso1, iso2, dist) %>%
  rbind(close_strain.df, .)
str(close_strain_symetrical.df)
## 'data.frame':    2484 obs. of  3 variables:
##  $ iso1: chr  "BPH2705" "BPH2709" "BPH2780" "BPH2896" ...
##  $ iso2: chr  "BPH2704" "BPH2708" "BPH2710" "BPH2710" ...
##  $ dist: int  21 20 18 20 26 20 9 16 16 29 ...
# close_strain_symetrical.df %>%
#   arrange(iso1) %>%
#   mutate(pair_id = str_c("GP-", formatC(row_number(), width = 4, format = "d", flag = "0"))) %>%
#   select(pair_id, iso1, iso2) %>%
#   write_tsv("Ideas_Grant_2020_analysis/Genetic_pairs_table/genetic_pairs.tab", col_names = F)

Merge with strain metadata of each iso

ST_to_CC.df <- read.csv("Ideas_Grant_2020_analysis/Raw_data/Saureus_CC_to_ST.csv") 

# !!! use corrected mortality metadata, the following changes in the sample metadata table have been made:
# 1) all isolates recovered from patient who survived are now labeled "survived" (previously only first isolate)
# 2) only the last isolate from patient who died are labeled "died" (previously on l first) 

sample_meta_iso1.df <- read.csv("Ideas_Grant_2020_analysis/Raw_data/strain_metadata_corrected_mortality_with_controls.csv") %>%
  merge(., ST_to_CC.df, by = "ST", all.x = T) %>%
  select_all(.funs = funs(paste0("iso1_", .)))
## Warning: `funs()` is deprecated as of dplyr 0.8.0.
## Please use a list of either functions or lambdas: 
## 
##   # Simple named list: 
##   list(mean = mean, median = median)
## 
##   # Auto named with `tibble::lst()`: 
##   tibble::lst(mean, median)
## 
##   # Using lambdas
##   list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
sample_meta_iso2.df <- read.csv("Ideas_Grant_2020_analysis/Raw_data/strain_metadata_corrected_mortality_with_controls.csv") %>%
    merge(., ST_to_CC.df, by = "ST", all.x = T) %>%
  select_all(.funs = funs(paste0("iso2_", .)))

close_strain_symetrical.df <- merge(close_strain_symetrical.df, 
                         sample_meta_iso1.df,
                         by.x = "iso1",
                         by.y = "iso1_sample_id") %>%
                   merge(., 
                         sample_meta_iso2.df,
                         by.x = "iso2",
                         by.y = "iso2_sample_id") %>%
  mutate(CC = ifelse(is.na(iso1_CC), yes = as.character(iso2_CC), no = as.character(iso1_CC)))

Merge with strain phenotype data of each iso

sample_GC_param.df <- read.csv("Data_analysis/processed_data/processed_median_parameters_GC.csv") %>%
  filter(strain_group != "CONTROL") %>%
  select(sample_id, ends_with("OD"))

sample_PI_param.df <- read.csv("Data_analysis/processed_data/processed_median_parameters_PI.csv") %>%
  filter(strain_group != "CONTROL") %>%
  select(sample_id, ends_with("death"))

# merge PI and GC param
sample_param.df <- merge(sample_GC_param.df, sample_PI_param.df)

# merge iso1 and iso2 pheno data with close_strain_symetrical.df
sample_param_iso1.df <- sample_param.df  %>%
  select_all(.funs = funs(paste0("iso1_", .)))

sample_param_iso2.df <- sample_param.df  %>%
  select_all(.funs = funs(paste0("iso2_", .)))


close_strain_symetrical_with_pheno.df <- merge(close_strain_symetrical.df, 
                         sample_param_iso1.df,
                         by.x = "iso1",
                         by.y = "iso1_sample_id") %>%
                   merge(., 
                         sample_param_iso2.df,
                         by.x = "iso2",
                         by.y = "iso2_sample_id") 

# Alternative merging
df_all_genetic_pairs_pheno <- close_strain_symetrical.df %>%
  left_join(sample_param_iso1.df,
            by = c("iso1" = "iso1_sample_id")) %>%
  left_join(sample_param_iso2.df,
            by = c("iso2" = "iso2_sample_id"))

write_csv(df_all_genetic_pairs_pheno,
          "Ideas_Grant_2020_analysis/Genetic_pairs_table/df_all_genetic_pairs_pheno.csv")

Calculate the proportion of phenotyped strains

# number of unique strains in the genetic pairs
n_distinct(close_strain_symetrical.df$iso1)
## [1] 281
# of these how many are phenotyped
n_distinct(close_strain_symetrical_with_pheno.df$iso1)
## [1] 202

Calculate delta and fold change between pairs and for each parameter

close_strain_symetrical_with_pheno_changes.df <- close_strain_symetrical_with_pheno.df %>%
  
  mutate(delta_time_of_max_rate_OD = iso2_time_of_max_rate_OD - iso1_time_of_max_rate_OD) %>%
  mutate(delta_max_rate_OD = iso2_max_rate_OD - iso1_max_rate_OD) %>%
  mutate(delta_doubling_time_OD = iso2_doubling_time_OD - iso1_doubling_time_OD) %>%
  mutate(delta_AUC_OD = iso2_AUC_OD - iso1_AUC_OD) %>%
  mutate(delta_time_of_max_OD = iso2_time_of_max_OD - iso1_time_of_max_OD) %>%
  mutate(delta_time_of_min_OD = iso2_time_of_min_OD - iso1_time_of_min_OD) %>%
  mutate(delta_max_OD = iso2_max_OD - iso1_max_OD) %>%
  mutate(delta_min_OD = iso2_min_OD - iso1_min_OD) %>%
  mutate(delta_end_point_OD = iso2_end_point_OD - iso1_end_point_OD) %>%
  
  mutate(delta_time_of_max_rate_death = iso2_time_of_max_rate_death - iso1_time_of_max_rate_death) %>%
  mutate(delta_max_rate_death = iso2_max_rate_death - iso1_max_rate_death) %>%
  mutate(delta_doubling_time_death = iso2_doubling_time_death - iso1_doubling_time_death) %>%
  mutate(delta_AUC_death = iso2_AUC_death - iso1_AUC_death) %>%
  mutate(delta_time_of_max_death = iso2_time_of_max_death - iso1_time_of_max_death) %>%
  mutate(delta_time_of_min_death = iso2_time_of_min_death - iso1_time_of_min_death) %>%
  mutate(delta_max_death = iso2_max_death - iso1_max_death) %>%
  mutate(delta_min_death = iso2_min_death - iso1_min_death) %>%
  mutate(delta_end_point_death = iso2_end_point_death - iso1_end_point_death) %>%
  
  mutate(log2fc_time_of_max_rate_OD = log2(iso2_time_of_max_rate_OD / iso1_time_of_max_rate_OD)) %>%
  mutate(log2fc_max_rate_OD = log2(iso2_max_rate_OD / iso1_max_rate_OD)) %>%
  mutate(log2fc_doubling_time_OD = log2(iso2_doubling_time_OD / iso1_doubling_time_OD)) %>%
  mutate(log2fc_AUC_OD = log2(iso2_AUC_OD / iso1_AUC_OD)) %>%
  mutate(log2fc_time_of_max_OD = log2(iso2_time_of_max_OD / iso1_time_of_max_OD)) %>%
  mutate(log2fc_time_of_min_OD = log2(iso2_time_of_min_OD / iso1_time_of_min_OD)) %>%
  mutate(log2fc_max_OD = log2(iso2_max_OD / iso1_max_OD)) %>%
  mutate(log2fc_min_OD = log2(iso2_min_OD / iso1_min_OD)) %>%
  mutate(log2fc_end_point_OD = log2(iso2_end_point_OD / iso1_end_point_OD)) %>%
  
  mutate(log2fc_time_of_max_rate_death = log2(iso2_time_of_max_rate_death / iso1_time_of_max_rate_death)) %>%
  mutate(log2fc_max_rate_death = log2(iso2_max_rate_death / iso1_max_rate_death)) %>%
  mutate(log2fc_doubling_time_death = log2(iso2_doubling_time_death / iso1_doubling_time_death)) %>%
  mutate(log2fc_AUC_death = log2(iso2_AUC_death / iso1_AUC_death)) %>%
  mutate(log2fc_time_of_max_death = log2(iso2_time_of_max_death / iso1_time_of_max_death)) %>%
  mutate(log2fc_time_of_min_death = log2(iso2_time_of_min_death / iso1_time_of_min_death)) %>%
  mutate(log2fc_max_death = log2(iso2_max_death / iso1_max_death)) %>%
  mutate(log2fc_min_death = log2(iso2_min_death / iso1_min_death)) %>%
  mutate(log2fc_end_point_death = log2(iso2_end_point_death / iso1_end_point_death))
## Warning in mask$eval_all_mutate(dots[[i]]): NaNs produced

## Warning in mask$eval_all_mutate(dots[[i]]): NaNs produced

## Warning in mask$eval_all_mutate(dots[[i]]): NaNs produced

Annotate mortality switches for all pairs

close_strain_symetrical_with_pheno_changes.df <- close_strain_symetrical_with_pheno_changes.df %>%
  mutate(switches = ifelse(iso1_mortality == "Survived" & iso2_mortality == "Died", "Survived-Died", NA)) %>%
  mutate(switches = ifelse(iso1_mortality == "Survived" & iso2_mortality == "Survived", "Survived-Survived", switches)) %>%
  mutate(switches = ifelse(iso1_mortality == "Died" & iso2_mortality == "Died", "Died-Died", switches)) %>%
  mutate(switches = ifelse(iso1_mortality == "Died" & iso2_mortality == "Survived", "Died-Survived", switches)) # %>%
  #select(iso1, iso2, iso1_mortality, iso2_mortality, switches)

# export the final table
close_strain_symetrical_with_pheno_changes.df %>%
  write_csv("Ideas_Grant_2020_analysis/Genetic_pairs_table/genetic_pairs_pheno_changes_mortality_switches.csv")

Plots differences by switches

for (var in  grep("delta", colnames(close_strain_symetrical_with_pheno_changes.df), value = T)) {
  t <- ggviolin(data = close_strain_symetrical_with_pheno_changes.df,
          y = var,
          x = "switches",
          fill = "switches", add = "jitter"
          ) +
  theme_bw() +
  theme(legend.position = "none")+
  stat_compare_means(ref.group ="Survived-Survived",
                     method = "wilcox.test",
                     label = "p.signif")
  print(t)
}

remove duplicated pairs (for survived-survived and died-died)

close_strain_symetrical_with_pheno_changes_no_dup.df <- close_strain_symetrical_with_pheno_changes.df %>%
  rowwise() %>%
  mutate(key = paste(sort(c(iso1, iso2, switches)), collapse = "")) %>%
  #select(iso1, iso2, switches, key)
  distinct(key, .keep_all = T)
  
for (var in  grep("delta", colnames(close_strain_symetrical_with_pheno_changes_no_dup.df), value = T)) {
  
  t <- ggviolin(data = close_strain_symetrical_with_pheno_changes_no_dup.df,
          y = var,
          x = "switches",
          fill = "switches", add = "jitter"
          ) +
  theme_bw() +
  theme(legend.position = "none")+
  stat_compare_means(ref.group ="Survived-Survived",
                     method = "wilcox.test",
                     label = "p.signif")
  print(t)
  
}

# plot only survived-survived and survived-died


close_strain_symetrical_with_pheno_changes_no_dup.df <- close_strain_symetrical_with_pheno_changes_no_dup.df %>%
  filter(switches %in% c("Survived-Survived", "Survived-Died"))
  
for (var in  grep("delta", colnames(close_strain_symetrical_with_pheno_changes_no_dup.df), value = T)) {
  
  t <- ggboxplot(data = close_strain_symetrical_with_pheno_changes_no_dup.df,
          y = var,
          x = "switches",
          fill = "switches", add = "jitter"
          ) +
  theme_bw() +
  theme(legend.position = "none")+
  stat_compare_means(ref.group ="Survived-Survived",
                     method = "wilcox.test",
                     label = "p.signif")
  print(t)
  
}

for (var in  grep("log2fc", colnames(close_strain_symetrical_with_pheno_changes.df), value = T)) {
  
  t <- ggboxplot(data = close_strain_symetrical_with_pheno_changes_no_dup.df,
          y = var,
          x = "switches",
          fill = "switches", add = "jitter"
          ) +
  theme_bw() +
  theme(legend.position = "none")+
  stat_compare_means(ref.group ="Survived-Survived",
                     method = "wilcox.test",
                     label = "p.signif")
  print(t)
  
}

## Warning: Removed 238 rows containing non-finite values (stat_boxplot).
## Warning: Removed 238 rows containing non-finite values (stat_compare_means).
## Warning: Removed 134 rows containing missing values (geom_point).

## Warning: Removed 37 rows containing non-finite values (stat_boxplot).
## Warning: Removed 37 rows containing non-finite values (stat_compare_means).
## Warning: Removed 37 rows containing missing values (geom_point).

## Warning: Removed 3 rows containing non-finite values (stat_boxplot).
## Warning: Removed 3 rows containing non-finite values (stat_compare_means).

## Warning: Removed 28 rows containing non-finite values (stat_boxplot).
## Warning: Removed 28 rows containing non-finite values (stat_compare_means).
## Warning: Removed 28 rows containing missing values (geom_point).

## Warning: Removed 54 rows containing non-finite values (stat_boxplot).
## Warning: Removed 54 rows containing non-finite values (stat_compare_means).
## Warning: Removed 1 rows containing missing values (geom_point).

## Warning: Removed 76 rows containing non-finite values (stat_boxplot).
## Warning: Removed 76 rows containing non-finite values (stat_compare_means).
## Warning: Removed 76 rows containing missing values (geom_point).

Check by CC

for (var in  grep("delta", colnames(close_strain_symetrical_with_pheno_changes.df), value = T)) {
  
  t <- ggboxplot(data = close_strain_symetrical_with_pheno_changes_no_dup.df %>% filter(CC %in% c("CC1", "CC22", "CC8")),
          y = var,
          x = "switches",
          fill = "switches", add = "jitter", facet.by = "CC", 
          ) +
  theme_bw() +
  theme(legend.position = "none")+
  stat_compare_means(ref.group ="Survived-Survived",
                     method = "wilcox.test",
                     label = "p.signif")
  print(t)
  
}
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

for (var in  grep("log2fc", colnames(close_strain_symetrical_with_pheno_changes.df), value = T)) {
  
  t <- ggboxplot(data = close_strain_symetrical_with_pheno_changes_no_dup.df %>% filter(CC %in% c("CC1", "CC22", "CC8")),
          y = var,
          x = "switches",
          fill = "switches", add = "jitter", facet.by = "CC", 
          ) +
  theme_bw() +
  theme(legend.position = "none")+
  stat_compare_means(ref.group ="Survived-Survived",
                     method = "wilcox.test",
                     label = "p.signif")
  print(t)
  
}
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Removed 184 rows containing non-finite values (stat_boxplot).
## Warning: Removed 184 rows containing non-finite values (stat_compare_means).
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Removed 108 rows containing missing values (geom_point).

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Removed 24 rows containing non-finite values (stat_boxplot).
## Warning: Removed 24 rows containing non-finite values (stat_compare_means).
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Removed 24 rows containing missing values (geom_point).

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Removed 3 rows containing non-finite values (stat_boxplot).
## Warning: Removed 3 rows containing non-finite values (stat_compare_means).
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Removed 27 rows containing non-finite values (stat_boxplot).
## Warning: Removed 27 rows containing non-finite values (stat_compare_means).
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Removed 27 rows containing missing values (geom_point).

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Removed 44 rows containing non-finite values (stat_boxplot).
## Warning: Removed 44 rows containing non-finite values (stat_compare_means).
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Removed 62 rows containing non-finite values (stat_boxplot).
## Warning: Removed 62 rows containing non-finite values (stat_compare_means).
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Removed 62 rows containing missing values (geom_point).

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

Check phenotypic variation for pair with 0 SNP distance

for (var in  grep("delta", colnames(close_strain_symetrical_with_pheno_changes.df), value = T)) {
  
  t <- ggviolin(data = close_strain_symetrical_with_pheno_changes_no_dup.df %>% filter(dist == 0),
          y = var,
          x = "switches",
          fill = "switches", add = "jitter", label = "iso1"
          ) +
  theme_bw() +
  theme(legend.position = "none")+
  stat_compare_means(ref.group ="Survived-Survived",
                     method = "wilcox.test",
                     label = "p.signif")
  print(t)
}  
## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default

## Warning: Computation failed in `stat_compare_means()`:
## argument "x" is missing, with no default